This invention relates to data processing by digital computer.
The terms client and server refer to a relationship between two computer programs in which one program, a client, makes a service request from another program, a server, which fulfills the request. In a network, the client/server model provides a convenient way to interconnect programs that are distributed efficiently across different locations. The client/server model has become one of the central ideas of network computing. In a typical client/server model, one server is activated and awaits client requests. Typically, multiple client programs share the services of a common server program. Both client programs and server programs are often part of a larger program or application.
Application users using client systems often access a database server. Each client system accesses an application server. An application server accesses the database server. Application servers handle application logic, thus taking away load from the database server. By increasing the number of application servers, a number of users can work on the same database system, because the load is balanced between the database system and all application servers. The application servers store copies of original database objects in a buffer area (also referred to as a cache) of their memories to reduce the number of accesses to the original database objects.
In an aspect, the invention features a computer-implemented method involving a first computer having a cache and at least a second computer, the method including providing a first journal on the first computer, a second journal on the second computer, a first digest matrix of the first computer and a second digest matrix of the second computer, wherein at least one second journal entry indicates a previous modification of an object on a third computer, sending from the first computer to the second computer at least a representation of a previous latest second journal entry referring to the third computer, comparing the at least one representation with a comparable portion of the second journal, if a current latest second journal entry referring to the third computer is newer than the previous latest second journal entry, transmitting from the second journal to the first journal at least each second journal entry that is newer than the previous latest second journal entry and that refers to the third computer, adjusting the cache according to the first journal, updating the at least one representation on the first computer according to the first journal, receiving a request for an object on the first computer, and identifying via the first digest matrix the second computer as a supplier of the object.
The invention can be implemented to include one or more of the following advantageous features. Sending can include delivering the request for the object from the first computer to the second computer. The second computer can use a further cache and transmitting further can include sending the object from the further cache to the cache of the first computer. Updating can include the first digest matrix. The method can include synchronizing the first digest matrix with the second digest matrix.
In another aspect, the invention features a method including in a network of computers, providing a first journal in a first computer, a second journal in the second computer, a first digest matrix of the first computer and a second digest matrix of the second computer, the second journal entry indicating a previous modification of an object on a third computer, sending from the first computer to the second computer a representation of a previous latest second journal entry, comparing the representation with a comparable portion of the second journal, if a current latest second journal entry referring to the third computer is newer than the previous latest second journal entry, transmitting from the second journal to the first journal the second journal entry that is newer than the previous latest second journal entry, adjusting a cache in the first computer according to the first journal, updating the representation on the first computer according to the first journal, receiving a request for an object on the first computer, and identifying via the first digest matrix the second computer as a supplier of the object.
The invention can be implemented to include one or more of the following advantageous features. Sending can include delivering the request for the object from the first computer to the second computer. Updating can include the first digest matrix. The method can include synchronizing the first digest matrix with the second digest matrix.
The invention can be implemented to include one or more of the following advantageous features.
The method takes advantage of the fact that most objects are not needed in an absolutely temporal precise manner but still have to be consistent within a certain time interval. Objects having a static character, such as master data of an application system, can be xe2x80x9cbufferedxe2x80x9d in a cache of a network system because they are rarely changed. The retrieval of an object directly from a corresponding database, which is slower than the retrieval from a cache memory, can be avoided as long as no modification is applied to the object and the buffered copy of the object in the cache is identical with the original object in the database.
In a large computer network, such as the Internet, substantially simultaneous access to an object by a large number of users is achieved by storing buffered copies of the object in the caches of a number of network computers. The method provides a consistent copy of the object at a network system where the object is requested, rather than retrieving the original object from the database each time a user tries to access it.
The method routes an object request to a cache system that stores an appropriate copy of the requested object. The copy is distributed to the requesting system, thus increasing the number of suppliers for the requested object.
A first computer receiving the object request, almost immediately, identifies another second computer that can deliver on the request. This avoids the slower direct database access to the corresponding first computer. It further saves bandwidth in the network because only one other computer is queried, instead of querying a group of other computers.
If a further request for the object is directed to the first computer, the request is instantly answered from the first cache. If the request is directed to a further computer with a further, synchronized digest matrix, there are now two suppliers (first and second computer) to deliver on the request.
The details of one or more particular implementations of the invention are set forth in the accompanying drawings and the description below. Other features, objects, and advantages of the invention will be apparent from the description and drawings, and from the claims.